GWE IPv6のDHCP

問題名

IPv6のDHCP

問題文

概要

トラコン大学のすぐる先生は、ネットワークの授業でIPv6のDHCPをパケットキャプチャして見せたいと考えました。
ルーターOSではなく使い慣れたLinux 環境で行いたいと考えfrrを選定しました。

しかし、すぐる先生はfrrを触ったことがありません。
さらに、すぐる先生は学会で忙しいため、ゼミ生であるあなたに手順を調べてほしいとお願いしてきました。
DHCPの方法は、SLAAC・DHCPv6どちらでも構わないそうです。

ホスト dhcp-serverにfrrをインストールして、clientにIPv6アドレスを配布してあげて疎通確認できる状態までしてください。
アドレスレンジはは2001:db8::/64を使用してください。

dhcp-serverclientのアドレス、手順を報告すること。

初期状態

  • IPv6が何も設定されていない

終了状態

  • dhcp-serverがdhcpでclientにipを配布し、pingを送ることができる

問題環境

dhcp-serverclientはIPv4によってアクセスができるが、一切IPv6などの設定がされていないプレーンなUbuntu22.04

解説

概要・作問意図

問題名が問題のすべてを表していて、単純にaptなどでfrrをインストールし、dhcp-serverに固定IPを振ってclientにDHCPをする問題です。

ネットワークを勉強するのって実機がいるんじゃないか?となりがちなのでvyosだけでなくfrrというソフトウェアルーターがあることを知ってほしかった(のと、自分が触ってみたかった)からです。

dockerとfrrを利用して手元でネットワーク実験ができるtinet というソフトもあります。
仕組みなどを解説した動画もあるので、よければ。

解答手順

dhcp-serverにFRRをインストールする。

sudo apt install frr

vtyshを起動してipv6を設定して、固定IP(本記事ではは2001:db8::1/64とする)とSLAACの設定を入れる。

interface eth0
 ipv6 address 2001:db8::1/64
 ipv6 nd prefix 2001:db8::/64
 no ipv6 nd suppress-ra

クライアントでは、/etc/netplan/01-netcfg.yamlを以下のように書き換える。

-     dhcp6: 'no'
+     dhcp6: 'yes'

変更を適用して、DHCPサーバーのVMと疎通をはかる。

sudo netplan apply # デフォルトルートの書き方が非推奨というwarningが出るが、無視する
ping 2001:db8::1

再起動後の挙動は指定していないので writeしてもしなくてもいいです。

採点基準

  • frrがインストールされている: 50%
  • IPv6のDHCPができている: 50%

参加者の解答例

  • Docker でfrrを動かす aptで入れることもできますが
  sudo docker run -d --net=host --cap-add=CAP_NET_ADMIN --cap-add=CAP_NET_RAW --cap-add=CAP_SYS_ADMIN --privileged frrouting/frr:v8.4.1

のように Docker で動作させているチームもいました。